#ifndef WIDSYBILVIEW_H_
#define WIDSYBILVIEW_H_

#include "scHeader.h"
#include <QWidget>
#include <QString>

namespace sybilpm
{
/**
 * A helper class for runtime translation.
 */
class TransSybilView
{
public:
	virtual ~TransSybilView() {}
	virtual std::string getTechnicalName() const =0;
	virtual QString getDisplayName() const =0;
	virtual QString getDescription() const =0;
};

/**
 * Abstract base class for all views. Instances to be
 * obtained through ctrl/FactoryView.
 */
class WidSybilView : public QWidget
{
	Q_OBJECT
signals:
	void disabledViewClicked(WidSybilView * view);
public:
	WidSybilView(QWidget * parent);
	virtual ~WidSybilView();
	virtual int getViewId() const =0;
public slots:
	virtual void dataChangedSl(unsigned long transactionId) =0;
	virtual void dataMarkSl() =0;
protected:
	//virtual void mousePressEvent(QMouseEvent * event);
	virtual bool event(QEvent * event);
	unsigned long transId;
};

} // namespace sybilpm

#endif /* WIDSYBILVIEW_H_ */
